工控網(wǎng)首頁
>

應(yīng)用設(shè)計

>

用Excel實現(xiàn)BP神經(jīng)網(wǎng)絡(luò)及其在數(shù)字識別中的應(yīng)用

用Excel實現(xiàn)BP神經(jīng)網(wǎng)絡(luò)及其在數(shù)字識別中的應(yīng)用

2006/5/17 9:40:00
關(guān)鍵詞:BP神經(jīng)網(wǎng)絡(luò);Excel;數(shù)字識別 中圖分類號:TP319 文獻標(biāo)識碼:A Implementation for BP Neural network with Excel and Application to Digit Recognition HU Gui-ming, ZHAO Hui-min, XU Wei-chao (College of Electrical Engineering, Guangxi University, Nanning 530004, China) Abstract: In this paper, A BP neural network is introduced which is realized in worksheets and Visual Basic Editor of Macro under the circumstance of Microsoft Excel and then use it to recognize the print digit. It is straight and convenient that interface of Excel is used to put in or get out the data and this method has many virtues sound code cant compare with. This procedure can also be used to recognize English letter. Key words: BP neural network; Excel; digit recognition 1 引言 人工神經(jīng)網(wǎng)絡(luò)(ANN)是當(dāng)今智能控制領(lǐng)域最活躍的分支之一,它所具有的并行計算能力、容錯能力、泛化能力,以及以任意精度逼近未知非線性對象的特點,為解決未知非線性對象的控制問題,提供了一種有效的方法。人們先后提出了幾十種 ANN模型,其中基于BP(Back Propagation)算法的前饋神經(jīng)網(wǎng)絡(luò),是ANN中比較成熟的一種,并得到了廣泛的應(yīng)用。本文在回顧BP算法的基礎(chǔ)上,以數(shù)字識別為實例用Excel的工作表和宏中Visual Basic編輯器的實現(xiàn)該算法。 2 BP網(wǎng)絡(luò)的模型和學(xué)習(xí)算法 BP算法的基本思想是,學(xué)習(xí)過程由信號的正向傳播和誤差的反向傳播兩個過程組成。在正向傳播過程中,輸入信息從輸入層經(jīng)隱含層逐層計算傳向輸出層,每一層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。如果在輸出層沒有得到期望的輸出,則計算輸出層的誤差變化值,然后轉(zhuǎn)向反向傳播,通過網(wǎng)絡(luò)將誤差信號沿原來的連接通路反傳回來修改各層神經(jīng)元的權(quán)值直至達到期望目標(biāo)。 本文采用圖1所示的單隱層網(wǎng)絡(luò)。單隱層網(wǎng)絡(luò)的應(yīng)用最為普遍。習(xí)慣將單隱層前饋網(wǎng)稱為三層前饋網(wǎng)或三層感知器,三層包括了輸入層、隱層和輸出層。
以上各式共同構(gòu)成了BP網(wǎng)絡(luò)的數(shù)學(xué)模型。 BP算法的推導(dǎo)在這不再贅述,以下是單隱層 BP網(wǎng)絡(luò)各層權(quán)值調(diào)整計算公式:
3 BP神經(jīng)網(wǎng)絡(luò)的程序?qū)崿F(xiàn) 2.1 樣本的準(zhǔn)備 本算法以數(shù)字識別為實例,訓(xùn)練樣本和測試樣本采用不同的印刷體數(shù)字。在樣本的準(zhǔn)備中,要將實際問題投向轉(zhuǎn)化為神經(jīng)網(wǎng)絡(luò)可以接受的數(shù)據(jù)輸入,經(jīng)神經(jīng)網(wǎng)絡(luò)計算后,再把網(wǎng)絡(luò)的輸出轉(zhuǎn)化為實際問題的解,這涉及到特征的提取。在本文中將數(shù)字的橫向和縱向分成32份,得到一個32×32的網(wǎng)格。在數(shù)字的筆劃覆蓋單元格一半面積以上的單元格賦值1,否則賦值0,從而得到一個32×32的矩陣(如圖2所示)。作為神經(jīng)網(wǎng)絡(luò)的輸人數(shù)據(jù),要將這個矩陣轉(zhuǎn)化為一個1024×1的數(shù)組,特征提取這部分的過程可以在宏功能中編程實現(xiàn)。則每套印刷體樣本(包括0,1,…,9十個數(shù)字)的特性可用一個1024×10的數(shù)組表示。這個網(wǎng)格在Excel的工作表中制作,1024×10的數(shù)組也存儲在工作表中。
輸出數(shù)值的范圍為阿拉伯?dāng)?shù)字0到9,其節(jié)點個數(shù)的選擇可有多種方案。這里作者采用二進制數(shù)表示這十個數(shù)字,也就是說輸出層節(jié)點個數(shù)最少可以為4個。 隱節(jié)點的確定采用試湊法,在樣本訓(xùn)練前設(shè)置隱節(jié)點的個數(shù),先設(shè)置較少的隱節(jié)點訓(xùn)練網(wǎng)絡(luò),然后再逐漸增加隱節(jié)點個數(shù),用同樣的樣本進行訓(xùn)練,從中確定網(wǎng)絡(luò)誤差最小時對應(yīng)的隱節(jié)點個數(shù)。 2.2 BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練 樣本儲存在Excel的工作表中,BP算法用宏中的Visual Basic編輯器實現(xiàn),這樣數(shù)據(jù)的讀取和輸出非常方便。圖3是標(biāo)準(zhǔn)BP算法的程序流程圖。 (1)初始化。對權(quán)值矩陣W、Y賦隨機數(shù),將樣本模式計數(shù)器p和訓(xùn)練次數(shù)計數(shù)器q置為1,誤差 E置0,信息效率設(shè)為0~1間的小數(shù),網(wǎng)絡(luò)訓(xùn)練后
2.3 BP神經(jīng)網(wǎng)絡(luò)的測試 用一些新的樣本作為測試樣本,對已訓(xùn)練好的網(wǎng)絡(luò)進行測試,測試結(jié)果的界面如圖4所示。測試結(jié)果計算出了每個樣本組的識別率以及平均識別率,并顯示了該網(wǎng)絡(luò)的總均方誤差。我們可以在測試結(jié)果中通過比較平均識別率來確定網(wǎng)絡(luò)的最佳總均方誤差。 3 結(jié)束語 本文簡單的介紹了反向傳播BP算法的基本概念,在Excel的工作表中實現(xiàn)樣本的采樣以及樣本的存儲以及結(jié)果的輸出,算法的編程采用宏中的 Visual Basic編輯器。Excel的工作表非常龐大,可以儲存大量的樣本,并且可以根據(jù)需要修改樣本庫。Visual Basic編輯器中的語言能夠存取Excel的所有命令和對象,且兼容了Basic編程語言的命令和語法,可以控制Excel的所有功能。利用Excel的界面輸入輸出數(shù)據(jù),即直觀又方便,有著源程序不可比擬的優(yōu)點。該程序也可用于英語字母的識別。 參考文獻 [1] 韓力群.人工神經(jīng)網(wǎng)絡(luò)理論、設(shè)計及應(yīng)用[M].化學(xué)工業(yè)出版社。2002.1 [2] 布寧.Excel Visual Basic for Application用戶使用指南[M].顧鐵成,等譯.北京:科學(xué)出版社,1996.10. [3] 賀興時,劉宇.BP神經(jīng)網(wǎng)絡(luò)算法在數(shù)字識別中的應(yīng)用[J].西北紡織工學(xué)院學(xué)報,2000,14(4),356~362. [4] 雷建和.反向傳播(BP)算法極其在VB5中的實現(xiàn)[J].青島建筑工程學(xué)院學(xué)報,1999,20(4),79~84.
投訴建議

提交

查看更多評論
其他資訊

查看更多

超越傳統(tǒng)直覺,MATLAB/Simulink助力重型機械的智能化轉(zhuǎn)型

新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會

派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者

智能工控,存儲強基 | 海康威視帶來精彩主題演講

展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會